package ch.pizzapp.kurier.client;

import org.androidannotations.annotations.rest.Accept;
import org.androidannotations.annotations.rest.Post;
import org.androidannotations.annotations.rest.Rest;
import org.androidannotations.api.rest.MediaType;
import org.springframework.http.converter.FormHttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestClientException;

import ch.pizzapp.kurier.data.CategoryResponceData;
import ch.pizzapp.kurier.data.GenarateItemResponceData;
import ch.pizzapp.kurier.data.NoficationResponceData;
import ch.pizzapp.kurier.data.OderResponce;
import ch.pizzapp.kurier.data.PizaaWithoutSizeResponceData;
import ch.pizzapp.kurier.data.PlaceResponceData;
import ch.pizzapp.kurier.data.ResponceData;
import ch.pizzapp.kurier.data.SignUpResponceData;
import ch.pizzapp.kurier.data.UserResonce;

/**
 * shanuka gayashan @Cyberlmj 2:06:25 AM Email: shanuka.gayashan@cyberlmj.com
 */
@Rest(rootUrl = "http://demo.banneheka-informatik.com/ws/", converters = {
		FormHttpMessageConverter.class, StringHttpMessageConverter.class,
		MappingJackson2HttpMessageConverter.class }, interceptors = { KInterceptor.class })
public interface InfoClient {
	/**
	 * 
	 * @param formfields
	 *            auth_token limit filter_by{ featured top_rated latest
	 *            recommended}
	 * @return
	 * @throws RestClientException
	 * 
	 */
	@Post("/req.php")
	@Accept(MediaType.APPLICATION_JSON)
	ResponceData getInfo(MultiValueMap formfields) throws RestClientException;

	@Post("/req.php")
	@Accept(MediaType.APPLICATION_JSON)
	CategoryResponceData getCatergory(MultiValueMap formfields)
			throws RestClientException;

	@Post("/req.php")
	@Accept(MediaType.APPLICATION_JSON)
	GenarateItemResponceData getGenarate(MultiValueMap formfields)
			throws RestClientException;

	@Post("/req.php")
	@Accept(MediaType.APPLICATION_JSON)
	PizaaWithoutSizeResponceData getPizzawithOutSize(MultiValueMap formfields)
			throws RestClientException;

	@Post("/req.php")
	@Accept(MediaType.APPLICATION_JSON)
	PizaaWithoutSizeResponceData getPizzawithSize(MultiValueMap formfields)
			throws RestClientException;

	@Post("/req.php")
	@Accept(MediaType.APPLICATION_JSON)
	UserResonce doLogin(MultiValueMap formfields) throws RestClientException;

	@Post("/req.php")
	@Accept(MediaType.APPLICATION_JSON)
	SignUpResponceData doSignUp(MultiValueMap formfields)
			throws RestClientException;

	@Post("/req.php")
	@Accept(MediaType.APPLICATION_JSON)
	SignUpResponceData fogotPassword(MultiValueMap formfields)
			throws RestClientException;

	@Post("/req.php")
	@Accept(MediaType.APPLICATION_JSON)
	PlaceResponceData getPlaces(MultiValueMap formfields)
			throws RestClientException;

	@Post("/req.php")
	@Accept(MediaType.APPLICATION_JSON)
	OderResponce checkOut(MultiValueMap formfields) throws RestClientException;

	@Post("/req.php")
	@Accept(MediaType.APPLICATION_JSON)
	NoficationResponceData getNotification(MultiValueMap formfields)
			throws RestClientException;;

}
